import React from 'react';
import PropTypes from 'prop-types';
import { Link, Route, Switch } from 'dva/router';
import DocumentTitle from 'react-document-title';
import { Icon } from 'antd';
import GlobalFooter from '../components/GlobalFooter';
import styles from './UserLayout.less';
import { CommonRouter } from '../utils/utils';

const links = [{
  title: '帮助',
  href: '',
}, {
  title: '隐私',
  href: '',
}, {
  title: '条款',
  href: '',
}];

const copyright = <div>Copyright <Icon type="copyright" /> 2017 企创宝体验技术部出品</div>;

class UserLayout extends React.PureComponent {
  static childContextTypes = {
    location: PropTypes.object,
  }

  getChildContext() {
    const { location } = this.props;
    return { location };
  }

  getPageTitle() {
    const { location } = this.props;
    const { pathname } = location;
    let title = 'Ant Design Pro';
    CommonRouter.forEach((item) => {
      if (item.path === pathname) {
        title = `${item.name} - Ant Design Pro`;
      }
    });
    return title;
  }

  renderRouter = () => {
    const curNav = CommonRouter;
    const routes = curNav.map((item, index) => {
      const rProps = {
        ...item,
        key: index,
      };
      return <Route {...rProps} />;
    });
    return routes;
  }

  render() {
    return (
      <DocumentTitle title={this.getPageTitle()}>
        <div className={styles.container}>
          <div className={styles.top}>
            <div className={styles.header}>
              <Link to="/">
                <img alt="" className={styles.logo} src="https://gw.alipayobjects.com/zos/rmsportal/NGCCBOENpgTXpBWUIPnI.svg" />
                <span className={styles.title}>企创宝--资产管理系统Beta</span>
              </Link>
            </div>
            <p className={styles.desc}>QCB-Assets--资产管理系统</p>
          </div>
          <Switch>
            { this.renderRouter() }
          </Switch>
          <GlobalFooter className={styles.footer} links={links} copyright={copyright} />
        </div>
      </DocumentTitle>
    );
  }
}

export default UserLayout;
